using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using System.Data;
using ShopPowerTemplate.Entities;

namespace ShopPowerTemplate.Services
{
    public partial interface IProductService : IDisposable
    {
        bool StockAvailable(Product product, IEnumerable<Option> selectectOptions);

        List<Product> SearchCustomByPrice(Func<Product, bool> searchCriteria);
        List<Product> SearchCustomByName(Func<Product, bool> searchCriteria);
        List<Product> SearchCustomByRating(Func<Product, bool> searchCriteria);
        List<Product> SearchCustomByProminentAndName(Func<Product, bool> searchCriteria);

        Image GetFirstProductImage(int productId);
        IEnumerable<Image> GetAllProductImage(int productId);

        IEnumerable<OptionType> GetOptionTypes(int productId);
        IEnumerable<Product> GetProminentProducts();
    }
}
